1. Field of the Invention
The invention relates to network management tools and in particular to network management tools that control communication between nodes of a network.
2. Description of the Related Art
Networks are generally categorized as local area networks (LANs) or wide area networks (WANs). LANs interconnect a relatively small number of nodes in a relatively small geographic area, such as a group of buildings. The nodes of a LAN communicate with each other by exchanging packets of data over media, such as cable, optical fiber or wireless connections, called LAN links. A WAN is a group of LANs interconnected by WAN links. The cost of communicating over a LAN is generally much less than the cost of communicating over a WAN because LAN links are usually privately owned, whereas WAN links are often leased. Once a LAN is installed, its owner generally does not incur an additional cost for sending packets over the LAN, whereas the providers of WAN links charge for each packet sent over the WAN and/or for the time the WAN link is established.
Although network software originally written for use with data transmissions over LANs can be used over WANs, the resulting WAN network traffic is very expensive because of design choices made when the software was written. Software designed for use over LANs generally does not limit the amount of network traffic that it generates because LAN communication costs are small. (Generating network traffic herein means transmitting data over a network and/or causing other software to transmit over the network.) Consequently, this software frequently generates inefficient network traffic. For example, the software does not optimize on network usage by forgoing transmission of so-called "heartbeat" messages or by combining several small packets into one large packet. When such software is used over a WAN, the resulting network traffic is expensive primarily because of the per-packet charges levied by the WAN-link providers.
The following types of software typically generate network traffic: application software, such as word processors and spreadsheet programs that retrieve and store files from file servers and send files to print servers; network applications, such as electronic mail programs that send and receive mail messages; and network operating systems (NOS) and distributed database programs that generate various "housekeeping" messages. Network traffic is also generated in support of other NOS functions, such as name resolution, searching, time synchronization, data synchronization and object reference verification. Software that generates network traffic is hereinafter collectively referred to as application programs.
An example of such an application program is a NetWare system having a distributed, hierarchical database of network information called NetWare Directory Services (NDS). NDS stores replicas of objects and entries on several nodes ("NDS nodes") of a network to increase the accessibility of this information to applications and other software that is distributed across the network. Whenever one of these replicas is changed, these NDS nodes collaborate to synchronize all of the replicas, i.e. the NDS nodes exchange messages with each other to ensure that all of the replicas are updated to reflect the change. Synchronization also ensures that the NDS nodes do not provide inconsistent ("stale") data to the distributed software.
Sometimes, in an effort to achieve a performance objective, application programs inefficiently utilize the network. For example, an objective of NDS is to quickly synchronize replicas. To achieve this goal, NDS avoids the overhead involved in recreating connections between NDS nodes by maintaining open connections even when NDS does not need to send synchronization messages. Such inefficiencies increase network-link costs.
Moreover, the large volume of network traffic generated by application programs often overloads certain network links, particularly during periods of peak usage. This type of overloading may interfere with significant network traffic, such as file server and print server operations. Consequently, some network administrators would prefer to restrict the use of selected network links based on the type and priority of the network traffic serviced over the links. In addition, they would prefer to balance the cost of network traffic against factors, such as the speed of replica synchronization provided by a NOS.
Software developers have attempted to reduce network link charges by identifying the sources of network traffic and reducing the traffic they generate. For example, some application programs allow a network administrator to control the network traffic generated by these programs. However, each of these programs typically has a different user interface and different operating characteristics which the network administrator must learn in order to effectively manage the network traffic generated by the program. This is clearly burdensome. In addition, the network administrator must configure each application program for each node on which the program is installed. This approach also duplicates effort because software to manage network traffic must be developed for each such application program. Furthermore, as new types of network links are developed, software developers must update their application programs to provide options for controlling traffic over these new links.